1. Field of the Invention
The present invention relates to a Viterbi decoder, and more particularly, to a Viterbi decoder having a plurality of add-compare-select units for adding, comparing, and selecting branch metrics and state metrics, and outputting decoded data from a selection signal representing an optimum path. The present application is based upon Korean Application Nos. 96-7208 and 96-7727, which are incorporated herein by reference.
2. Description of the Related Art
Generally, a Viterbi decoder uses a Viterbi algorithm which depends on maximum likelihood decoding when a received convolutional codeword is to be decoded. The Viterbi algorithm compares a plurality of known code sequences with received code sequences, selects a path having the shortest code distance as a maximum likelihood path, and obtains decoded data corresponding to the selected path. The Viterbi algorithm exhibits excellent error correction capability, thus is widely used in satellite, ground network, and mobile communications.
FIG. 1 is a schematic block diagram of a conventional Viterbi decoder which has a branch metric calculator 100, an add-compare-select (ACS) unit 110, a state metric memory 120, a path memory 130, and a path tracing logic unit 140. The branch metric calculator 100 calculates a Euclidean distance or a Hamming distance between received data and a codeword to be transmitted. The ACS unit 110 adds and compares the branch metrics calculated in the branch metric calculator 100 and state metrics, and selects a survival branch for each state which is the most approximate to the code order of the received data. That is, in the ACS unit 110, calculated branch metrics are added to previous state metrics in an adder according to a trellis diagram, currently received state metrics are compared in a comparator, and small state metrics are selected in a selector, wherein the selected state metrics are stored in the state metric memory 120. Selected path selection signals are stored in the path memory 130 after passing through the path tracing logic unit 140. Meanwhile, the state metric memory 120 stores a current state metric. The path tracing logic unit 140 traces path information stored in the path memory 130 in order to look for a state having the largest maximum likelihood, finds the most approximate path to that of data sent from a transmitting encoder (not shown), and outputs decoded data.
A system employing a code division multiple access (CDMA) communications method uses a Viterbi decoder including a single ACS unit. It usually uses a convolutional codeword with a constrained length K of 9, and thus the number of states is 2.sup.9-1, namely, 256. Therefore, the single ACS unit 110 performs addition, comparison, and selection on 256 states for one symbol. Since operations for a plurality of channels must be performed, decoding speed is significantly reduced.